package edu.szcu.vitaguard.dao;

import edu.szcu.vitaguard.entity.UserLogin;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface UserLoginDao {
    /**
     * 插入用户登录信息
     * @param userLogin 用户登录实体
     * @return 影响的行数
     */
    int insert(UserLogin userLogin);

    /**
     * 根据ID查询用户登录信息
     * @param loginId 登录ID
     * @return 用户登录实体
     */
    UserLogin selectById(@Param("loginId") Integer loginId);

    /**
     * 根据用户名查询用户登录信息
     * @param username 用户名
     * @return 用户登录实体
     */
    UserLogin selectByUsername(@Param("username") String username);

    /**
     * 根据手机号查询用户登录信息
     * @param phone 手机号
     * @return 用户登录实体
     */
    UserLogin selectByPhone(@Param("phone") String phone);

    /**
     * 更新用户登录信息
     * @param userLogin 用户登录实体
     * @return 影响的行数
     */
    int update(UserLogin userLogin);

    /**
     * 根据ID删除用户登录信息
     * @param loginId 登录ID
     * @return 影响的行数
     */
    int deleteById(@Param("loginId") Integer loginId);

    /**
     * 查询所有用户登录信息
     * @return 用户登录列表
     */
    List<UserLogin> selectAll();

    /**
     * 根据name字段精确查询用户登录信息
     * @param name 用户姓名
     * @return 用户登录实体
     */
    UserLogin selectByName(@Param("name") String name);
}
